package com.entmanage.base.leave.domain;

import java.math.BigDecimal;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.entmanage.common.annotation.Excel;
import com.entmanage.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 员工假期管理对象 leave_balance
 *
 * @author lsq
 * @date 2025-09-29
 */
@ApiModel(value = "LeaveBalance", description = "员工假期管理对象")
public class LeaveBalance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty(value = "$column.columnComment")
    private Long id;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    @ApiModelProperty(value = "$column.columnComment")
    private Long employeeId;

    /** 工作年限（年） */
    @Excel(name = "工作年限", readConverterExp = "年=")
    @ApiModelProperty(value = "工作年限（年）")
    private Long workYear;

    /** 年假总时长（小时） */
    @Excel(name = "年假总时长", readConverterExp = "小=时")
    @ApiModelProperty(value = "年假总时长（小时）")
    private BigDecimal annualLeave;

    /** 剩余年假 */
    @Excel(name = "剩余年假")
    @ApiModelProperty(value = "剩余年假")
    private BigDecimal remainingAnnualLeave;

    /** 剩余事假 */
    @Excel(name = "剩余事假")
    @ApiModelProperty(value = "剩余事假")
    private BigDecimal remainingPersonalLeave;

    /** 剩余病假 */
    @Excel(name = "剩余病假")
    @ApiModelProperty(value = "剩余病假")
    private BigDecimal remainingSickLeave;

    /** 剩余婚假 */
    @Excel(name = "剩余婚假")
    @ApiModelProperty(value = "剩余婚假")
    private BigDecimal remainingMarriageLeave;

    /** 剩余产假 */
    @Excel(name = "剩余产假")
    @ApiModelProperty(value = "剩余产假")
    private BigDecimal remainingMaternityLeave;

    /** 剩余陪产假 */
    @Excel(name = "剩余陪产假")
    @ApiModelProperty(value = "剩余陪产假")
    private BigDecimal remainingFaternityLeave;

    /** 剩余加班假 */
    @Excel(name = "剩余加班假")
    @ApiModelProperty(value = "剩余加班假")
    private BigDecimal remainingOvertimeLeave;

    /** 剩余其他假 */
    @Excel(name = "剩余其他假")
    @ApiModelProperty(value = "剩余其他假")
    private BigDecimal remainingOthersLeave;

    /** 用户ID */
    @Excel(name = "用户ID")
    @ApiModelProperty(value = "用户ID")
    private Long userId;

    /** 部门ID */
    @Excel(name = "部门ID")
    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    /** 删除标识 */
    @ApiModelProperty(value = "删除标识")
    private String delFlag;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setEmployeeId(Long employeeId)
    {
        this.employeeId = employeeId;
    }

    public Long getEmployeeId()
    {
        return employeeId;
    }
    public void setWorkYear(Long workYear)
    {
        this.workYear = workYear;
    }

    public Long getWorkYear()
    {
        return workYear;
    }
    public void setAnnualLeave(BigDecimal annualLeave)
    {
        this.annualLeave = annualLeave;
    }

    public BigDecimal getAnnualLeave()
    {
        return annualLeave;
    }
    public void setRemainingAnnualLeave(BigDecimal remainingAnnualLeave)
    {
        this.remainingAnnualLeave = remainingAnnualLeave;
    }

    public BigDecimal getRemainingAnnualLeave()
    {
        return remainingAnnualLeave;
    }
    public void setRemainingPersonalLeave(BigDecimal remainingPersonalLeave)
    {
        this.remainingPersonalLeave = remainingPersonalLeave;
    }

    public BigDecimal getRemainingPersonalLeave()
    {
        return remainingPersonalLeave;
    }
    public void setRemainingSickLeave(BigDecimal remainingSickLeave)
    {
        this.remainingSickLeave = remainingSickLeave;
    }

    public BigDecimal getRemainingSickLeave()
    {
        return remainingSickLeave;
    }
    public void setRemainingMarriageLeave(BigDecimal remainingMarriageLeave)
    {
        this.remainingMarriageLeave = remainingMarriageLeave;
    }

    public BigDecimal getRemainingMarriageLeave()
    {
        return remainingMarriageLeave;
    }
    public void setRemainingMaternityLeave(BigDecimal remainingMaternityLeave)
    {
        this.remainingMaternityLeave = remainingMaternityLeave;
    }

    public BigDecimal getRemainingMaternityLeave()
    {
        return remainingMaternityLeave;
    }
    public void setRemainingFaternityLeave(BigDecimal remainingFaternityLeave)
    {
        this.remainingFaternityLeave = remainingFaternityLeave;
    }

    public BigDecimal getRemainingFaternityLeave()
    {
        return remainingFaternityLeave;
    }
    public void setRemainingOvertimeLeave(BigDecimal remainingOvertimeLeave)
    {
        this.remainingOvertimeLeave = remainingOvertimeLeave;
    }

    public BigDecimal getRemainingOvertimeLeave()
    {
        return remainingOvertimeLeave;
    }
    public void setRemainingOthersLeave(BigDecimal remainingOthersLeave)
    {
        this.remainingOthersLeave = remainingOthersLeave;
    }

    public BigDecimal getRemainingOthersLeave()
    {
        return remainingOthersLeave;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("employeeId", getEmployeeId())
            .append("workYear", getWorkYear())
            .append("annualLeave", getAnnualLeave())
            .append("remainingAnnualLeave", getRemainingAnnualLeave())
            .append("remainingPersonalLeave", getRemainingPersonalLeave())
            .append("remainingSickLeave", getRemainingSickLeave())
            .append("remainingMarriageLeave", getRemainingMarriageLeave())
            .append("remainingMaternityLeave", getRemainingMaternityLeave())
            .append("remainingFaternityLeave", getRemainingFaternityLeave())
            .append("remainingOvertimeLeave", getRemainingOvertimeLeave())
            .append("remainingOthersLeave", getRemainingOthersLeave())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("userId", getUserId())
            .append("deptId", getDeptId())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
